<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.

-->
<!-- Generated by Apache Maven Doxia at May 6, 2012 -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Apache log4j 1.2 - 
    How to build Apache log4j</title>
    <style type="text/css" media="all">
      @import url("./css/maven-base.css");
      @import url("./css/maven-theme.css");
      @import url("./css/site.css");
    </style>
    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
      <meta name="author" content="The Apache log4j team" />
    <meta name="Date-Revision-yyyymmdd" content="20120506" />
    <meta http-equiv="Content-Language" content="en" />
      </head>
  <body class="composite">
    <div id="banner">
                  <a href="../../" id="bannerLeft">
                                                <img src="images/ls-logo.jpg" alt="Apache Logging Services Project" />
                </a>
                        <a href=".." id="bannerRight">
                                                <img src="images/logo.jpg" alt="Apache log4j™" />
                </a>
            <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="breadcrumbs">
            
        
                <div class="xleft">
        <span id="publishDate">Last Published: 2012-05-06</span>
                  &nbsp;| <span id="projectVersion">Version: 1.2.17</span>
                          |                           <a href="http://www.apache.org/" class="externalLink" title="Apache">Apache</a>
                &gt;
                              <a href="../../" title="Logging Services">Logging Services</a>
                &gt;
                              <a href="../" title="log4j">log4j</a>
                &gt;
                              <a href="./" title="1.2">1.2</a>
                          </div>
            <div class="xright">        
        
      </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
             
        
                                <h5>About log4j 1.2</h5>
                  <ul>
                  <li class="none">
                          <a href="index.html" title="What is log4j?">What is log4j?</a>
            </li>
                  <li class="none">
                          <a href="download.html" title="Download">Download</a>
            </li>
                  <li class="none">
                          <a href="faq.html" title="FAQ">FAQ</a>
            </li>
                  <li class="none">
                          <a href="roadmap.html" title="Roadmap">Roadmap</a>
            </li>
          </ul>
                       <h5>Community</h5>
                  <ul>
                  <li class="none">
                          <a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a>
            </li>
                  <li class="none">
                          <a href="issue-tracking.html" title="Issue Tracking">Issue Tracking</a>
            </li>
                  <li class="none">
                          <a href="http://blogs.apache.org/logging/" class="externalLink" title="Blog">Blog</a>
            </li>
          </ul>
                       <h5>Documentation</h5>
                  <ul>
                  <li class="none">
                          <a href="manual.html" title="Introduction">Introduction</a>
            </li>
                  <li class="none">
                          <a href="apidocs/index.html" title="JavaDoc">JavaDoc</a>
            </li>
                  <li class="none">
                          <a href="publications.html" title="Publications">Publications</a>
            </li>
                  <li class="none">
            <strong>Building</strong>
          </li>
                  <li class="none">
                          <a href="http://wiki.apache.org/logging-log4j" class="externalLink" title="Wiki">Wiki</a>
            </li>
          </ul>
                       <h5>Project Documentation</h5>
                  <ul>
                                                                                                                                                              <li class="collapsed">
                          <a href="project-info.html" title="Project Information">Project Information</a>
                  </li>
                                                                                                        <li class="collapsed">
                          <a href="project-reports.html" title="Project Reports">Project Reports</a>
                  </li>
          </ul>
                       <h5>Apache</h5>
                  <ul>
                  <li class="none">
                          <a href="http://www.apache.org" class="externalLink" title="Home">Home</a>
            </li>
                  <li class="none">
                          <a href="http://www.apache.org/licenses" class="externalLink" title="License">License</a>
            </li>
                  <li class="none">
                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship">Sponsorship</a>
            </li>
                  <li class="none">
                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">Thanks</a>
            </li>
                  <li class="none">
                          <a href="http://www.apache.org/security/" class="externalLink" title="Security">Security</a>
            </li>
                  <li class="none">
                          <a href="http://www.apachecon.com" class="externalLink" title="Conferences">Conferences</a>
            </li>
          </ul>
                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
        <img class="poweredBy" alt="Built by Maven" src="./images/maven-feather.png" />
      </a>
                   
        
            </div>
    </div>
    <div id="bodyColumn">
      <div id="contentBox">
        <!-- Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License. -->

  
<div class="section"><h2>Building Apache log4j<a name="Building_Apache_log4j"></a></h2>

<div class="section"><h2>Introduction<a name="Introduction"></a></h2>

<p>This is a detailed instruction to reproduce the log4j distribution
either to verify that the release is reproducable or to prepare
a hot-fix.</p>

<p>The log4j build is platform dependent. The best is to setup a VM using virtualbox (or similar),
install Ubuntu and follow the steps here.</p>

<div class="section"><h2>Preparation of environment<a name="Preparation_of_environment"></a></h2>

<div class="section"><h3>Install Sun Java 6<a name="Install_Sun_Java_6"></a></h3>
<div><pre>
$&gt; sudo sed  's/restricted/restricted universe multiverse/' -i /etc/apt/sources.list
$&gt; sudo apt-get update &amp;&amp; sudo apt-get -y update
$&gt; sudo apt-get install openjdk-6-jdk
</pre></div>


</div><div class="section"><h3>Install Maven 2, Subversion, mingw and xemacs21, openssh-server:<a name="Install_Maven_2_Subversion_mingw_and_xemacs21_openssh-server:"></a></h3>

<div><pre>
$&gt; sudo apt-get install maven2 subversion mingw32 xemacs21 openssh-server
</pre></div>

</div><div class="section"><h3>Copy Win32 version of jni_md.h for NTEventLogAppender.dll<a name="Copy_Win32_version_of_jni_md.h_for_NTEventLogAppender.dll"></a></h3>

<div><pre>
c:\&gt;cd &quot;\Program Files\Java\jdk_1.6.0_16\include\win32
c:\&gt;scp jni_md.h username@hostname:

$&gt; export JNI_WIN32_INCLUDE_DIR=/home/username
</pre></div>

</div><div class="section"><h3>Signing &amp; Deploying<a name="Signing__Deploying"></a></h3>

<p>Create a local ssh key with no passphrase to enable 
&quot;deployment&quot; of site back to the local machine using scp.</p>

<div><pre>
$&gt; ssh-keygen
$&gt; cd ~/.ssh
$&gt; cat id_rsa.pub &gt;&gt; authorized_keys
$&gt; ssh localhost
$&gt; exit
</pre></div>

<p>It's important to add localhost and people.a.o to the list of permanent allowed hosts.
Besides the above, this should have been runned at least once:</p>

<div><pre>
$&gt; ssh people.apache.org
</pre></div>

<p>If you intended to deploy jars to the repo or update the site,
you need to set up ssh to use private keys to access people.apache.org
and create or modify ~/.m2/settings.xml to specify user name and key location.
</p>

<div><pre>
&lt;settings xmlns=&quot;http://maven.apache.org/SETTINGS/1.0.0&quot;
          xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
          xsi:schemaLocation=&quot;http://maven.apache.org/SETTINGS/1.0.0 
              http://maven.apache.org/xsd/settings-1.0.0.xsd&quot;&gt;
   &lt;servers&gt;
    &lt;server&gt;
      &lt;id&gt;logging.repo&lt;/id&gt;
      &lt;username&gt;USERNAME for people.apache.org&lt;/username&gt;
      &lt;privateKey&gt;/home/username/.ssh/id_rsa&lt;/privateKey&gt;
      &lt;passphrase&gt;&lt;/passphrase&gt;
    &lt;/server&gt;
   &lt;/servers&gt;
&lt;/settings&gt;
</pre></div>

<p>You should test your ssh connection to people.apache.org 
and localhost before attempting a deployment like:</p>

<div><pre>
$ ssh -l USERNAME people.apache.org
$ ssh localhost
</pre></div>

</div><div class="section"><h2>Building release artifacts<a name="Building_release_artifacts"></a></h2>

<p>Before you build, please make sure you have a nonblocking editor set as SVN editor. Like:</p>

<div><pre>
$ export SVN_EDITOR=xemacs
</pre></div>

<p>Other checks:</p>

<ul>
    <li>Please make sure changes.xml reflect all fixed issues. The release date in changes is to be set
    to the date the release candidate is created.</li>
    <li>Please update doap_log4j.rdf to reflect the correct version. Use the same release date as in changes.</li>
</ul>
<p>The release artifacts were originally built by:</p>

<div><pre>
$&gt; svn co http://svn.apache.org/repos/asf/logging/log4j/trunk log4j
$&gt; cd log4j
$&gt; mvn package release:prepare
$&gt; mvn release:perform
</pre></div>

<p>Note: you'll be ask for a SVN tagname. Please use the following pattern: v1.2.17-RC1.</p>

<p>
Attention: this is an non-interactive build. In some cases it is necessary
to add: -Dusername=paouser -Dpassword=paopassword 
to the release plugin commands. This is surely not safe because your password
can be seen clearly. 
</p>

<p>The release artifacts can be rebuilt by:</p>

<div><pre>
$ mvn release:perform -DconnectionUrl=scm:svn:https://svn.apache.org/repos/asf/logging/log4j/tags/v1_2_16
</pre></div>

<p>Building site and artifacts from a tag:</p>

<div><pre>
$ svn co https://svn.apache.org/repos/asf/logging/log4j/tags/v1_2_16
$ cd v1_2_16
$ mvn site assembly:assembly
</pre></div>

<p>TODO: the following section describes site staging. This must be altered: the staging must not happen in SVN.</p>

<p>
The website content will automatically be staged to the ASF SVN repo by &quot;mvn site-deploy&quot;.
This phase checks out https://svn.apache.org/repos/asf/logging/site/trunk/docs/log4j/1.2 
into target/site-deploy, copys the generated documentation to that directory using
scp to localhost and then commits the changed content.  You will be prompted for an
SVN commit message using the configured SVN_EDITOR.  A commit message must be entered or the
site commit will be aborted.
</p>

<p>
The staged content can be tested by opening 
http://svn.apache.org/repos/asf/logging/site/trunk/docs/1.2/index.html, 
however some links may be broken due to the staged location.  
The staged version can be published to the main public site by executing 
&quot;svn update&quot; in /www/logging.apache.org/log4j/1.2 on people.apache.org.
</p>

<div class="section"><h2>If a vote has failed<a name="If_a_vote_has_failed"></a></h2>
<ul>
    <li>Send a &quot;cancel&quot; note to the mailinglist (usually resend the vote mail with [CANCEL] in subject</li>
    <li>Delete the RC artifacts from:<div><pre>http://people.apache.org/builds/logging/repo/log4j/log4j/</pre></div></li>
</ul>



<div class="section"><h2>If a vote has passed<a name="If_a_vote_has_passed"></a></h2>

<p>If a RC has passed the vote, these steps are necessary:</p>

<p>Rename the tag:</p>
<div><pre>
$&gt; svn mv https://svn.apache.org/repos/asf/logging/log4j/tags/log4j-1.2.17-RC1 https://svn.apache.org/repos/asf/logging/log4j/tags/log4j-1.2.17
</pre></div>

<p>Change the pom.xml version to the prior version number.</p>

</div>


      </div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xleft">Copyright &#169;                    1999-2012
                        <a href="http://www.apache.org">Apache Software Foundation</a>.
                  
        
       Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>.</div>
      <div class="xleft">Apache Extras Companion for Apache log4j, Apache log4j, Apache, the Apache feather logo,
   the Apache Logging Services project logo, the log4j logo, and the Built by Maven logo are trademarks of The Apache Software Foundation.  Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.</div>
      <div class="clear">
        <hr/>
      </div>
    </div>
  </body>
</html>
